<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
<head>
    <th:block th:include="include :: header('医废 报模版 配置列表')"/>
</head>
<body class="gray-bg">

<div class="col-sm-12 select-table ">
    <table id="demo" lay-filter="demo" class="layui-hide"></table>
</div>
<!--<script src="leshu/xy.js"></script>-->
<th:block th:include="include :: footer"/>
<!--<script th:src="@{ajax/libs/layui/lay/modules/excel.js}"></script>-->
<!-- 时间 每天  行 -->
<script type="text/html" id="titleTpl">
    {{#  if(d.id < 100){ }}
    <a href="/detail/{{d.id}}" class="layui-table-link">{{d.title}}</a>
    {{#  } else { }}
    {{d.title}}(普通用户)
    {{#  } }}
</script>
<!-- todo creat  by xing  待修改日期控件 此处尽量仅留存一个 配置文件中动态 修改type 和 yy mm dd  -->
<!--日期 日控件-->
<script type="text/html" id="toolbarDate">
    <div class="layui-inline ">
        <label class="layui-form-label ">日期：</label>
        <div class="layui-input-inline input-lang">
            <input type="text" class="layui-input layui-input-date" id="toolbarDate_layui">
        </div>
        <button type="button" lay-event="submits" class="layui-btn layui-btn-primary">查询</button>
    </div>
</script>
<script type="text/html" id="toolbarDate2">
    <div class="layui-inline ">
        <label class="layui-form-label ">日期：</label>
        <div class="layui-input-inline input-short">
            <input type="text" class="layui-input layui-input-date" id="toolbarDate_layui_2_start">
        </div>
        <div class="layui-input-inline "> ~ </div>
        <div class="layui-input-inline input-short">
            <input type="text" class="layui-input layui-input-date" id="toolbarDate_layui_2_end">
        </div>

        <button type="button" lay-event="submits" class="layui-btn layui-btn-primary">查询</button>
    </div>
</script>


<!--日期 月控件-->
<script type="text/html" id="toolbarMonth">
    <div>
        <label class="layui-form-label">月</label>
        <div class="layui-input-inline">
            <input type="text" class="layui-input layui-input-date" id="toolbarMonth_layui">
        </div>
        <button type="button" lay-event="submits" class="layui-btn layui-btn-primary">查询</button>
    </div>
</script>

<!--  楼号  -->
<script type="text/html" id="buildingNos">
    <div class="layui-inline">
        <label class="layui-form-label">楼号：</label>
        <div class="layui-input-inline" style="width: 100px;">
            <select id="buildingNoList" lay-filter="select_buildingNo" lay-search>
                <option value=-1>所有</option>
            <!--     替换下拉           -->
                #option
            </select>
        </div>
    </div>
</script>

<!--  采集员  -->
<script type="text/html" id="collUsers">
    <div class="layui-inline">
        <label class="layui-form-label" style="width:100px;">采集员：</label>
        <div class="layui-input-inline" style="width:200px;">
            <select id="collUserList" lay-filter="select_collUser" lay-search>
                <option value='0'>所有</option>
                <!--     替换下拉           -->
                #collUserOption
            </select>
        </div>
    </div>
</script>

<!--  科室  -->
<script type="text/html" id="departments">
    <div class="layui-inline">
        <label class="layui-form-label" style="width:100px;">科室：</label>
        <div class="layui-input-inline" style="width:200px;">
            <select id="departmentList" lay-filter="select_department" lay-search>
                <option value='0'>所有</option>
                <!--     替换下拉           -->
                #departmentOption
            </select>
        </div>
    </div>
</script>

<!--  医废类型  -->
<script type="text/html" id="yfTypes">
    <div class="layui-inline">
        <label class="layui-form-label" style="width:100px;">医废类型：</label>
        <div class="layui-input-inline" style="width:120px;">
            <select id="yfTypeList" lay-filter="select_yfType">
                <option value='0'>所有</option>
                <!--     替换下拉           -->
                #yfTypeOption
            </select>
        </div>
    </div>
</script>


<!-- 日期 列 模板 -->
<script type="text/html" id="titleTpl2">
    {{#
    var monthDays = laydate.getEndDate(date.month, date.year);
    }}
    {{#  if(d.id < 100){ }}
    <a href="/detail/{{d.id}}" class="layui-table-link">{{d.title}}</a>
    {{#  } else { }}
    {{d.title}}(普通用户)
    {{#  } }}
</script>
<!--医废类型数字转汉字 模板 -->
<script type="text/html" id="trash_type_to_str">
    {{# if(d.status == 0 ){ }}
    未采集
    {{#  } if(d.status == 10 )  { }}
    已收集
    {{#  } if(d.status == 15 )  { }}
    已转运
    {{#  } if(d.status == 20 )  { }}
    已入库
    {{#  } if(d.status == 25 )  { }}
    出库中
    {{#  } if(d.status == 30 )  { }}
    已出库
    {{#  } if(d.status == 40 )  { }}
    一键出库
    {{#  } if(d.status == 50 )  { }}
    车载运输中
    {{#  } }}
</script>

<script type="text/html" id="codeIdImg">
    <img class='table-img-xs' data-id='{{d.codeId}}'/>
</script>
<script th:inline="javascript">
    var prefix = ctx + "yf/reports";
    //    获取配置信息
    var jsonConfig = [[${jsonConfig}]];
    var pathName = [[${pathName}]];
    var title = [[${title}]];
    //制表人
    var userName = [[${userName}]];
    //用户归属机构
    var hospName = [[${hospName}]];


    //医院管理员
    var admin_h = [[${@permission.isAnyRoles('admin_h_province,admin_h_city,admin_h_county,admin_x_township')}]];
    // 时间
    var excute_sql = null,
        selectNameSort = null,
        range = $.tableTemplate.dateValue("range"),
        startDate = $.tableTemplate.dateValue("start"),
        endDate = $.tableTemplate.dateValue('end'),
        buildingNoBoo = false,  // 楼号渲染
        buildingNo = 0,  // 楼号
        collUserBoo = false,  // 采集员渲染
        collUser = '0',  // 采集员
        departmentBoo = false,  // 科室渲染
        department = '0',  // 科室
        yfTypeBoo = false,  // 医废类型渲染
        yfType = '0',  // 医废类型
        month = $.tableTemplate.dateValue("month");

    //判断是否 预览
    var test = [[${test}]];
    if (test) {
        jsonConfig = JSON.parse(sessionStorage.getItem("json"));
        excute_sql = sessionStorage.getItem("sql");
        selectNameSort = sessionStorage.getItem("selectNameSort");
    }

    // 获取楼号列表
    function getBuildingNoList() {
        let html = "";
        $.ajax({
            type: 'post',
            async: false,
            url: prefix + "/buildingNoList",
            data: {
                hospitalId: sessionStorage.getItem("hospital_ids")
            },
            success: function (res) {
                for (let i = 0; i < res.data.length; i++) {
                    html += '<option value="' + res.data[i] + '">' + res.data[i] + '号楼</option>\r\n';
                }
            }
        });
        return html;
        // $.post(prefix + "/buildingNoList", {
        //     hospitalId: sessionStorage.getItem("hospital_ids")
        // }, function (res) {
        //     // console.log(res)
        //     for (let i = 0; i < res.data.length; i++) {
        //         $("#buildingNoList").append('<option value="' + res.data[i] + '">' + res.data[i] + '号楼</option>')
        //     }
        // });
    }

    // 获取采集员列表
    function getCollUserList() {
        let html = "";
        $.ajax({
            type: 'post',
            async: false,
            url: prefix + "/collUserList",
            data: {
                hospitalId: sessionStorage.getItem("hospital_ids")
            },
            success: function (res) {
                for (let i = 0; i < res.data.length; i++) {
                    html += '<option value="' + res.data[i] + '">' + res.data[i] + '</option>\r\n';
                }
            }
        });
        return html;
    }

    // 获科室列表
    function getKSList() {
        let html = "";
        $.ajax({
            type: 'post',
            async: false,
            url: prefix + "/KSList",
            data: {
                hospitalId: sessionStorage.getItem("hospital_ids")
            },
            success: function (res) {
                for (let i = 0; i < res.data.length; i++) {
                    html += '<option value="' + res.data[i] + '">' + res.data[i] + '</option>\r\n';
                }
            }
        });
        return html;
    }

    // 获取医废类型列表
    function getYfTypeList() {
        let html = "";
        $.ajax({
            type: 'post',
            async: false,
            url: prefix + "/yfTypeList",
            data: {
                hospitalId: sessionStorage.getItem("hospital_ids")
            },
            success: function (res) {
                for (let i = 0; i < res.data.length; i++) {
                    html += '<option value="' + res.data[i] + '">' + res.data[i] + '</option>\r\n';
                }
            }
        });
        return html;
    }


    layui.use(['table', 'laydate','excel'], function () {
        var table = layui.table;
        //添加判断 数组工具栏
        if (jsonConfig.toolbar instanceof Array) {
            let li = jsonConfig.toolbar;
            for (let i = 0; i < li.length; i++) {
                //todo 数组 取第一个值id
                if (i > 0) {
                    let html = $(li[i]).html();
                    // 楼号
                    if (li[i] == "#buildingNos") {
                        jsonConfig.PrExData.buildingNoBoo = true;
                        html = html.replace("#option", getBuildingNoList());
                    }
                    // 采集员
                    if (li[i] == "#collUsers") {
                        jsonConfig.PrExData.collUserBoo = true;
                        html = html.replace("#collUserOption", getCollUserList());
                    }
                    // 科室
                    if (li[i] == "#departments") {
                        jsonConfig.PrExData.departmentBoo = true;
                        html = html.replace("#departmentOption", getKSList());
                    }
                    // 医废类型
                    if (li[i] == "#yfTypes") {
                        jsonConfig.PrExData.yfTypeBoo = true;
                        html = html.replace("#yfTypeOption", getYfTypeList());
                    }

                    $(li[0]).prepend(html);

                } else {    // 重新添加组件到toolbar，第一个是日期选择，第二个开始是下拉选择框
                    jsonConfig.toolbar = li[0];
                }
            }
        }

        let options = $.extend(true, {
            elem: '#demo',
            url: prefix + '/templatesList', //数据接口
            method: 'post',
            page: false,//开启分页
            totalRow: false,
            //供打印 导出报表 使用
            PrExData: {
                //默认楼号值 -1 则关闭
                buildingNo: 0,
                collUser: '0',
                department: '0',
                yfType: '0',
                //打印标题
                PrTitle: '',
                //导出标题
                ExTitle: '',
                //用户名
                userName: userName,
                //医院名
                hospName: hospName,
                //日期
                month: month,
                startDate: startDate,
                endDate: endDate,
                //打印副标题
                header: []
            },
            where: {
                test: test,
                sql: excute_sql,
                selectNameSort: selectNameSort,
                month: month,
                configId: pathName,
                hospitalId: sessionStorage.getItem("hospital_ids"),
                startDate: startDate,
                endDate: endDate,
                //楼号
                buildingNo: -1,
                // 采集员
                collUser: '0',
                // 科室
                department: '0',
                // 医废类型
                yfType: '0'
            },
            parseData: $.tableTemplate.parseData(),
            done: function (res, curr, count) {
                $.tableTemplate.done(res, curr, count, jsonConfig);
            }
        }, jsonConfig);
        table.render(options);
        // console.log(options)


        // var az = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'];
        //头工具栏事件
        table.on('toolbar(demo)', function (obj) {
                var checkStatus = table.checkStatus(obj.config.id);
                switch (obj.event) {
                    case 'submits':
                        console.log( "#buildingNoList  =  " + $("#buildingNoList").val() );
                        console.log( "#collUserList  =  " + $("#collUserList").val() );
                        console.log( "#departmentList  =  " + $("#departmentList").val() );
                        console.log( "#yfTypeList  =  " + $("#yfTypeList").val() );
                        table.reload('demo', {
                            where: {
                                month: month,
                                startDate: startDate,
                                endDate: endDate,
                                buildingNo: $("#buildingNoList").val(),
                                collUser: $("#collUserList").val(),
                                department: $("#departmentList").val(),
                                yfType: $("#yfTypeList").val()
                            },
                            PrExData: {
                                month: month,
                                startDate: startDate,
                                endDate: endDate
                            }
                        });
                        break;
                    case 'table_exports': {
                        // ex();
                        // exportFile_x2('demo');
                        break;
                    }
//                case 'PROMPT':
//                    if (!admin_h)
//                        layer.msg('此报表为当前管辖范围医院所有数据', {time: 5000});
////                    else
////                        layer.msg('只支持查询管辖范围以内医院统计数据', {time: 20000});
//                    break;
                    case 'Building': {
                        console.log(",,,,");
                        break;
                    }
                }

                // function align(text) {
                //     return {
                //         v: text,
                //         s: {
                //             alignment: {
                //                 horizontal: 'center',
                //                 vertical: 'center'
                //             },
                //         }
                //     }
                // }

                //表格导出 xlxs 文件 已完成 包装到原生layui代码里
                // function exportFile_x2(id) {
                //     var mergeConf = []
                //     //根据传入tableID获取表头
                //     var headers = $("div[lay-id=" + id + "] .layui-table-box table").get(0);
                //     var htrs = Array.from(headers.querySelectorAll('tr'));
                //     var complexTitle = [];
                //     //行 map
                //     var map_ = new Map();
                //     //循环多个tr复杂表头
                //     for (var j = 0; j < htrs.length; j++) {
                //         var hthss = $(htrs[j].querySelectorAll('th')).filter("[class!=layui-hide]")
                //         console.log("-==", hthss, hthss.length)
                //         var hths = Array.from($(htrs[j].querySelectorAll('th')).filter("[class!=layui-hide]"));
                //         console.log("-==", hths, hths.length)
                //         //节点 th 标签内容
                //         var titles = {};
                //         var jn = 0;
                //         //当前 循环序号
                //         var is_index = 1;
                //         //循环体 获取 th 值
                //         for (var i = 0; i < hths.length; i++) {
                //             //占用行
                //             var rowspan = hths[i].getAttributeNode('rowspan');
                //             //占用列
                //             var colspan = hths[i].getAttributeNode('colspan');
                //
                //             //合并单元格位置
                //             var x, y, m, h;
                //             //当前表格内容
                //             var value = hths[i].innerText
                //
                //             // //占用行
                //             if (rowspan != undefined && rowspan.value > 1) {
                //                 //列 添加合并 位置
                //                 x = az[is_index - 1] + (j + 1);
                //                 y = az[is_index - 1] + rowspan.value;
                //                 mergeConf.push([x, y]);
                //
                //                 titles['data-field-' + is_index] = align(value);
                //
                //                 map_.set(is_index, value);
                //                 // console.log("map第", j, '行，第', i, '列；', is_index, value)
                //                 is_index++;
                //                 jn++;
                //             }
                //             //占用列
                //             else if (colspan != undefined && colspan.value > 1) {
                //                 // 行 添加合并 位置
                //                 m = az[jn] + (j + 1);
                //                 h = az[jn + 1] + (j + 1);
                //                 jn = jn + Number(colspan.value);
                //                 mergeConf.push([m, h]);
                //                 //添加合并
                //                 for (let k = 1; k <= Number(colspan.value); k++) {
                //                     titles['data-field-' + is_index++] = align(value);
                //                     // console.log("占用列:", is_index + k, value)
                //                 }
                //             } else {
                //                 //当集合有键值 添加
                //                 if (map_.size > 0 && map_.get(is_index) != undefined) {
                //                     // console.log('map_:', i + 1, map_.get(is_index))
                //                     titles['data-field-' + is_index] = map_.get(is_index);
                //                     is_index++;
                //                 }
                //                 console.log(i, is_index, value)
                //                 //普通行
                //                 titles['data-field-' + is_index++] = align(value);
                //                 // 合并单元格
                //                 jn++;
                //             }
                //         }
                //         //将tr 添加到集合里
                //         complexTitle[j] = $.extend(titles, complexTitle[j]);
                //         console.log('titles:', titles)
                //         console.log('mergeConf:', mergeConf);
                //     }
                //
                //
                //     //根据传入tableID获取table内容
                //     var bodys = $("div[lay-id=" + id + "] .layui-table-box table").get(1);
                //     var btrs = Array.from(bodys.querySelectorAll("tr"))
                //     var bodysArr = new Array();
                //     for (var j = 0; j < btrs.length; j++) {
                //         var contents = {};
                //         var btds = Array.from($(btrs[j].querySelectorAll("td")).filter("[class!=layui-hide]"));
                //
                //         for (var i = 0; i < btds.length; i++) {
                //             //获取当前标签属性内容
                //             for (var key in titles) {
                //                 //修改:默认字段data-field+i,兼容部分数据表格中不存在data-field值的问题
                //                 var field = 'data-field-' + (i + 1);
                //                 if (field === key) {
                //                     //根据表头字段获取table内容字段
                //                     contents[field] = align(btds[i].innerText);
                //                 }
                //             }
                //         }
                //         bodysArr.push(contents)
                //     }
                //
                //     //根据传入tableID获取table 合并数据
                //     var bodyTotal = $("div[lay-id=" + id + "] .layui-table-total table").get(0);
                //     if (bodyTotal != undefined) {
                //         var btrsTotal = Array.from(bodyTotal.querySelectorAll("tr"))
                //         var contents = {};
                //         var btdsTotal = Array.from($(btrsTotal[0].querySelectorAll("td")).filter("[class!=layui-hide]"));
                //         console.log('btdsTotal：', btdsTotal.length)
                //         for (var i = 0; i < btdsTotal.length; i++) {
                //             //获取当前标签属性内容
                //             for (var key in titles) {
                //                 //修改:默认字段data-field+i,兼容部分数据表格中不存在data-field值的问题
                //                 var field = 'data-field-' + (i + 1);
                //                 if (field === key) {
                //                     //根据表头字段获取table内容字段
                //                     contents[field] = align(btdsTotal[i].innerText);
                //                 }
                //             }
                //         }
                //         bodysArr.push(contents)
                //     }
                //
                //
                //     //将标题行置顶添加到数组
                //     // bodysArr.unshift(titles);
                //     bodysArr = complexTitle.concat(bodysArr)
                //     console.log(bodysArr)
                //     console.log(mergeConf);
                //     //导出excel
                //     excel.exportExcel({
                //         sheet1: bodysArr
                //     }, '用户表12' + new Date().toLocaleString() + '.xlsx', 'xlsx', {
                //         extend: {
                //             sheet1: {
                //                 '!merges': excel.makeMergeConfig(mergeConf)
                //             }
                //         }
                //     });
                // }


                //表格导出
                // function exportFile(id) {
                //     //根据传入tableID获取表头
                //     var headers = $("div[lay-id=" + id + "] .layui-table-box table").get(0);
                //     var htrs = Array.from(headers.querySelectorAll('tr'));
                //     var complexTitle = [];
                //
                //     //循环多个tr复杂表头
                //     for (var j = 0; j < htrs.length; j++) {
                //         var hths = Array.from(htrs[j].querySelectorAll("th"));
                //         var titles = {};
                //         //循环th 值
                //         var jn = 1;
                //         for (var i = 0; i < hths.length; i++) {
                //             var index = j + "" + i;
                //             var clazz = hths[i].getAttributeNode('class').value;
                //
                //             // if (clazz != ' layui-table-col-special' && clazz != 'layui-hide') {
                //             //     //排除居左、具有、隐藏字段
                //             //     //修改:默认字段data-field+i,兼容部分数据表格中不存在data-field值的问题
                //             //     titles['data-field' + i] = hths[i].innerText;
                //             //     console.log("普：" + i, hths[i].innerText);
                //             // }
                //             var rowspan = hths[i].getAttributeNode('rowspan');
                //             var colspan = hths[i].getAttributeNode('colspan');
                //             var x, y, m, h;
                //             // console.log(x,y,index,i,az[i])
                //             //判断所占行数
                //             if (rowspan != undefined) {
                //                 x = az[i] + (i + 1);
                //                 y = az[i] + rowspan.value;
                //                 mergeConf.push([x, y]);
                //                 titles['data-field' + (i + 1)] = hths[i].innerText;
                //                 var next_i = Number(rowspan.value) - j - 1;
                //                 if (!complexTitle[next_i]) {
                //                     complexTitle[next_i] = {}
                //                 }
                //                 for (let k = 1; k < Number(rowspan.value); k++) {
                //                     //todo 合并行 位置不对
                //                     complexTitle[next_i]['data-field' + i + '_' + k] = hths[i].innerText
                //                     console.log("占行数", i, k, next_i, hths[i].innerText, complexTitle);
                //                 }
                //                 console.log(mergeConf);
                //             }
                //             //判断占用列
                //             else if (colspan != undefined) {
                //                 m = az[jn] + (j + 1);
                //                 h = az[jn + 1] + (j + 1);
                //                 //添加合并
                //                 mergeConf.push([m, h]);
                //
                //                 // titles['data-field' + jn] = hths[i].innerText;
                //                 for (let k = 1; k <= Number(colspan.value); k++) {
                //                     titles['data-field' + (jn + k)] = hths[i].innerText;
                //                     console.log("占用列:", jn + k, hths[i].innerText)
                //                 }
                //                 // console.log(m, h, jn, hths[i].innerText)
                //                 jn = jn + Number(colspan.value);
                //             } else
                //                 //添加复杂表头
                //                 titles['data-field' + (i + 1)] = hths[i].innerText;
                //         }
                //         //将tr 添加到集合里
                //         complexTitle[j] = $.extend(titles, complexTitle[j]);
                //         // console.log('titles:', titles)
                //     }
                //     // console.log(complexTitle)
                //     //根据传入tableID获取table内容
                //     var bodys = $("div[lay-id=" + id + "] .layui-table-box table").get(1);
                //     var btrs = Array.from(bodys.querySelectorAll("tr"))
                //     var bodysArr = new Array();
                //     for (var j = 0; j < btrs.length; j++) {
                //         var contents = {};
                //         var btds = Array.from(btrs[j].querySelectorAll("td"));
                //         for (var i = 0; i < btds.length; i++) {
                //             for (var key in titles) {
                //                 //修改:默认字段data-field+i,兼容部分数据表格中不存在data-field值的问题
                //                 var field = 'data-field' + (i + 1);
                //                 if (field === key) {
                //                     //根据表头字段获取table内容字段
                //                     contents[field] = btds[i].innerText;
                //                 }
                //             }
                //         }
                //         // bodysArr.push(contents)
                //         // console.log("内容：" + j, contents);
                //     }
                //     //将标题行置顶添加到数组
                //     // bodysArr.unshift(titles);
                //     bodysArr = complexTitle.concat(bodysArr)
                //     console.log(bodysArr)
                //     console.log(mergeConf);
                //     //导出excel
                //     // excel.exportExcel({
                //     //     sheet1: bodysArr
                //     // }, '用户表12' + new Date().toLocaleString() + '.xlsx', 'xlsx', {
                //     //     extend: {
                //     //         sheet1: {
                //     //             '!merges': excel.makeMergeConfig(mergeConf)
                //     //         }
                //     //     }
                //     // });
                // }

            }
        );


        // $la('.demoTable .layui-btn').on('click', function () {
        //     var type = $la(this).data('type');
        //     active[type] ? active[type].call(this) : '';
        // });

    });

</script>
</body>
</html>